﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Grafica.ClienteWS;

namespace Grafica
{
    public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }

        private void buttonLogin_Click(object sender, EventArgs e)
        {
            bool entroOk = false;
            bool invocoWS = true;

            //valido el campo usuario
            if (string.IsNullOrEmpty(textBoxUsuario.Text))
            {
                errorProvider1.SetError(textBoxUsuario, "Debe ingresar el usuario.");
                invocoWS = false;
            }
            else
            {
                errorProvider1.SetError(textBoxUsuario, String.Empty);
                invocoWS = true;
            }

            //valido el campo password
            if (string.IsNullOrEmpty(textBoxContraseña.Text))
            {
                errorProvider1.SetError(textBoxContraseña, "Debe ingresar la contraseña.");
                invocoWS = false;
            }
            else
            {
                errorProvider1.SetError(textBoxContraseña, String.Empty);
                invocoWS = true;
            }

            EtaxiSoapClient ws = new EtaxiSoapClient();

            if (ws == null) {
                MessageBox.Show("No se pudo conectar a la base de datos.", "Error de conexión.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
            }
   

            if (invocoWS){ //Si tengo los campos cargados recien ahi invoco al ws
                if (ws.IngresarSistema(textBoxUsuario.Text, textBoxContraseña.Text))
                {
                    this.Hide(); //cierro la ventana Login

                    Principal ventanaPrincipal = new Principal(textBoxUsuario.Text);


                    if ((textBoxUsuario.Text == "admin") || (textBoxUsuario.Text == "tesorero"))
                    {
                        //Esto es para el modo en el hardcoding
                        if (textBoxUsuario.Text == "admin")
                        {
                            ventanaPrincipal.SetModo("admin");
                        }
                        else
                        {
                            ventanaPrincipal.SetModo("tesorero");
                        }
                    }
                    else
                    {
                        
                        string rolUsuario = ws.ObtenerRolEmpleado(textBoxUsuario.Text);
                        
                        if (rolUsuario == "TESORERO")
                        {
                            ventanaPrincipal.SetModo("tesorero");
                        }
                        else
                        {
                            ventanaPrincipal.SetModo("admin");
                        }

                    }

                    ventanaPrincipal.Show();
                    entroOk = true;
                }
                else {
                    MessageBox.Show("El usuario o la contraseña ingresados no son válidos.", "Error al validar los datos.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
                
            }else{
                    MessageBox.Show("Ingrese el usuario y/o la contraseña.", "Error al ingresar.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                 }
        }


        private void buttonCancel_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}